/*
	This file is part of Vajolet.

    Vajolet is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Vajolet is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Vajolet.  If not, see <http://www.gnu.org/licenses/>
*/
#ifndef _VAJOLET
#define _VAJOLET

//----------------------------------------------------------------------------------
//	DEFINES
//----------------------------------------------------------------------------------

#define PROGRAM_NAME	"Vajolet"

#define VERSION			"2.16"

#define NDEBUG


#define MAX_GAME_LENGTH		(1024)
#define MAX_PLY				(200)
#define MAX_PLIES_FOR_POSITION (256)

//#define _DEBUG_MAKEMOVE
//#define _DEBUG_TRANSTABLE
//#define _DEBUG_HASH
//#define _STATS
//#define _KING_SAFETY_DEBUG
//#define _NODE_TYPE_DEBUG
//#define _DEBUG_CUT_STATS
//#define _GET_NEXT_STATS
//#define _DEBUG_EVAL

#define LARGE_NUMBER 32700

#define DRAWSCORE		0
#define STALEMATESCORE	0
#define CHECKMATESCORE	32000
#define	VALUE_KNOWN_WIN 15000
#define MATE_IN_MAX_PLY	(CHECKMATESCORE-100)
#define VALUE_NOT_CACHED	(32767)


//----------------------------------------------------------------------------------
//	TYPEDEF
//----------------------------------------------------------------------------------

typedef unsigned long long bitMap;
typedef unsigned long long U64;
typedef signed short int score;

unsigned long long perft(int depth);
unsigned long long divide(int depth);




#endif
